﻿using System.Xml.Serialization;

namespace Red.Controls.Diagrams.Declarators
{
    /// <summary>
    /// Base class that describes declarator.
    /// </summary>
    public abstract class NodeConnectorDeclarator
    {
        #region Properties

        /// <summary>
        /// Name visible on each node in node control.
        /// </summary>
        [XmlAttribute]
        public string Name { get; set; }

        /// <summary>
        /// Comment that will be visible next to each block in node control.
        /// </summary>
        [XmlAttribute]
        public string Comment { get; set; }

        /// <summary>
        /// Name of a property that is a member in class described by parent node of this declarator.
        /// </summary>
        [XmlAttribute]
        public string Binding { get; set; }

        #endregion Properties
    }

    /// <summary>
    /// Class to distinguish input declarator.
    /// </summary>
    [XmlType( "Input" )]
    public class NodeInputDeclarator : NodeConnectorDeclarator
    {

    }

    /// <summary>
    /// Class to distinguish output declarator.
    /// </summary>
    [XmlType( "Output" )]
    public class NodeOutputDeclarator : NodeConnectorDeclarator
    {

    }
}
